package com.denlaku.longan.dao;

import com.denlaku.longan.anno.VarOp;
import com.denlaku.longan.qo.DataSetQuery;
import com.denlaku.longan.qo.Query;
import com.denlaku.longan.vo.DataSet;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author tianx
 */
@Repository
public interface DataSetDao {
	/**
	 * 新增数据集
	 * @param dataSet 数据集
	 * @return 新增记录数
	 */
	@VarOp
	int add(DataSet dataSet);

	/**
	 * 更新数据集
	 * @param dataSet 数据集
	 * @return 更新记录数
	 */
	@VarOp
	int update(DataSet dataSet);

	/**
	 * 删除数据集
	 * @param query 查询参数
	 * @return 删除记录数
	 */
	int delete(Query query);

	/**
	 * 查询数据集
	 * @param query 查询参数
	 * @return 数据集列表
	 */
	List<DataSet> list(DataSetQuery query);

	/**
	 * 获取数据集id
	 * @param query 查询参数
	 * @return 数据集
	 */
	DataSet get(Query query);

	/**
	 * 清理tag
	 *
	 * @param tenantId 租户ID
	 * @param tagId 标签ID
	 */
	void clearTag(@Param("tenantId") Long tenantId, @Param("tagId") Long tagId);
}
